package org.dromara.xxmj.mapper;

import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.xxmj.domain.CourseVideo;
import org.dromara.xxmj.domain.vo.CourseVideoDetailVo;
import org.dromara.xxmj.domain.vo.CourseVideoVo;

import java.util.List;

/**
 * 课程视频Mapper接口
 *
 * @author Vincent
 */
public interface CourseVideoMapper extends BaseMapperPlus<CourseVideo, CourseVideoVo> {

    /**
     * 获取章节下的视频列表
     *
     * @param chapterId 章节ID
     * @return 视频列表
     */
    List<CourseVideoVo> selectVideosByChapterId(Long chapterId);

    /**
     * 获取视频详情
     *
     * @param id 视频ID
     * @return 视频详情
     */
    CourseVideoDetailVo selectVideoDetailById(Long id);

    /**
     * 获取视频详情（带用户进度）
     *
     * @param id 视频ID
     * @param userId 用户ID
     * @return 视频详情
     */
    CourseVideoDetailVo selectVideoDetailWithUserProgress(Long id, Long userId);

    /**
     * 更新视频观看次数
     *
     * @param id 视频ID
     * @return 影响行数
     */
    int incrementViewCount(Long id);

} 